home *** CD-ROM | disk | FTP | other *** search
/ Cream of the Crop 20 / Cream of the Crop 20 (Terry Blount) (1996).iso / os2 / gigo0714.zip / LISTSERV.DOC < prev    next >
Text File  |  1996-07-14  |  6KB  |  155 lines

  1. LISTSERV -
  2.  
  3.   Small kludge (with full source) to process mailing-list
  4.   maintenace requests from remote users.  The functionallity of it
  5.   is similiar to other listserv processors on the internet.
  6.  
  7.   This program only handles the subscribing and unsubscribing of
  8.   people in an automated way, that the users can use without the
  9.   intervention of the system administrator.   ML does not actually
  10.   send out the messages for the mailing list [GIGO will, using 
  11.   CAPTURE and EXPLODE statements - see the GIGO docs and config files
  12.   for details on how to actually set the mailing list functions up.]
  13.  
  14.   Full source is provided should you wish to modify it's behavior
  15.   or add features.  I'd be interested in seeing any changes to this
  16.   program! :-)
  17.  
  18. ABOUT THE DOCS
  19.  
  20.   Never ask the programmer to make the docs.  Programmers never have
  21.   the real-world perspective ;-)  If you can make these more sensible
  22.   to the public, feel free to shoot them back my way.
  23.  
  24. HOW IT WORKS (from the user's perspective)
  25.  
  26.   [listserv@yoursite mode]
  27.  
  28.   Users send a message to listserv@yoursite (or whatever address you
  29.   set it up as).  Users can request HELP, SUBSCRIBE <listname>,
  30.   UNSUBSCRIBE <listname>, INDEX, QUERY, and DISCONNECT.  The listserv
  31.   program processes there requests and sends back a reply.
  32.  
  33.   -or-
  34.  
  35.   [listname-r@yoursite mode]
  36.  
  37.   Users send a message (message body doesn't matter) to the address you
  38.   specify.  The user is automaticly added to the mailing list, and send
  39.   back an informational message about the mailing list in question.
  40.  
  41.  
  42. HOW IT WORKS (from your perspective).
  43.  
  44.   You need to set up some additional configuration entries in your
  45.   GATEWAY.CFG file.
  46.  
  47.     USER  listname-r  FUNCTION  listserv subscribe listname
  48.     USER  list2name-r FUNCTION  listserv subscribe list2name
  49.  
  50.     USER  listserv    FUNCTION  listserv
  51.  
  52.   When a user sends a message to one of the above addresses, GIGO will
  53.   generate FUNCTION.REQ, a simple text file.  At the top of that text
  54.   file will be two lines ("Apparently-To:  ..." and "Apparently-From:
  55.   ...").  Following those two lines, the entire email message is
  56.   written to disk, with all headers.  It will be up to the external
  57.   program if it wants to understand any of them.
  58.  
  59.   LISTSERV will read that file, finding out who the user is, and
  60.   basically ignoring the rest of the message header.
  61.  
  62.   When the LISTSERV program is used in the first context, LISTSERV will
  63.   attempt to open LISTNAME.ML (.ml stands for mailing list).  The
  64.   user's address will be placed at the top of this list.  Duplicates of
  65.   the same address are not repeated.  If LISTNAME.FAQ exists, it will
  66.   be sent to the user in the confirmation message.  Use this file to
  67.   designate any special rules, the posting-address, etc.
  68.  
  69.   In the second instance, LISTSERV is a little more interactive with
  70.   the user.  The user can request HELP; help will be given.  If
  71.   LISTSERV.HLP exists, it will be shown; otherwise, the default text is
  72.   given in English.  Users can subscribe and desubscribe to mailing
  73.   lists; the mailing list names have to be 8 character or less and
  74.   contain only letters, numbers, and dashes.
  75.  
  76.   When a user SUBSCRIBES or UNSUBSCRIBES, a check for the mailing list
  77.   name (LISTNAME.ML; etc) is made.  If it is there, the function will
  78.   be processed.
  79.  
  80.   Upon the return to GIGO, GIGO will check to see if FUNCTION.REQ was
  81.   made.  LISTSERV generates that file, and GIGO will happily send
  82.   it to the remote user.
  83.  
  84. CONFIRMAITON REQUESTS
  85.  
  86.   This version has an added feature:  If you wish, you can make any
  87.   subscriptions only take effect after a confirmation letter is sent
  88.   to the user, and that user confirms it.  This prevents people with
  89.   badly formed email addresses from subscribing, as well as some
  90.   of the mailing list attacks that have been going on around the
  91.   internet lately.
  92.  
  93.   To add this feature, add 
  94.  
  95.     SET LISTSERV=CONFIRM
  96.  
  97.   before running listserv.  A good place is your autoexec.bat (dos users)
  98.   or in your config.sys (os/2 users.. don't forget to reboot); alternately,
  99.   place it into the batchfiles that run your gateway.
  100.  
  101.   Alternate, if you have problems with this method,  use "confserv.exe"
  102.   instead of "listserv.exe".  This binary has the CONFIRM setting
  103.   hardcoded in, for those people experiencing problems getting it
  104.   to work right.  I could never reproduce those problems, but the 
  105.   problems were widespread.
  106.  
  107.   At this time, the confirmation text is not configurable; the next version
  108.   will be.  If you're a C programmer, you can merely make changes to the
  109.   source code, and recompile.
  110.  
  111.  
  112. FILES YOU NEED TO MAKE:
  113.  
  114.   Note that "LISTNAME" may be subsitute with any 1-8 character name of
  115.   your choice, and is a generic term.
  116.  
  117.   LISTNAME.ML    : Actual list of email addresses (one address per
  118.                    line) of people that should be receiving messages
  119.                    related to this list.
  120.   LISTNAME.FAQ   : File given to anyone who subscribes the mailing
  121.                    list.  Should include conference rules; posting
  122.                    address;  contacts; etc.
  123.     ....
  124.  
  125.   LISTSERV.TXT   : Shown at the top of all responses made by the
  126.                    LISTSERV program.
  127.  
  128.   LISTSERV.IDX   : List of all mailing lists and their descriptions
  129.                    (simple ASCII file that is shown verbatim whenever
  130.                    a user requests the INDEX command).  If not
  131.                    available, the program will generate it's own
  132.                    index on the fly without descriptions.
  133.  
  134.   LISTSERV.HLP   : Help file shown when the user asks for HELP.
  135.                    Again, default help is available.
  136.  
  137.  
  138.  
  139. ABOUT THE SOURCE:
  140.  
  141.   The source code is written in Spagetti-C (tm), and is not terribly
  142.   big.  It compiled fine under Borland 3.1 (16 bit) with the large
  143.   memory model for me.  I'm not using anything fancy, this is a
  144.   quick-n-dirty program.  (A total of about 4 hours, if that..)
  145.  
  146.   The source should be able to provide you with a shell for other
  147.   function requests; you may be able to even make it into a more
  148.   powerful mailing list processor.
  149.  
  150.   This program and source code is Copyright 1993,1996 by Jason Fesler.  All
  151.   rights reserved.  Use of this code is granted to the Public Domain.
  152.  
  153.  
  154.   jfesler@gigo.com
  155.